home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Great Turkey Cookbook
/
The Great Turkey cookbook.iso
/
cwfc.inc
< prev
next >
Wrap
Text File
|
1995-06-09
|
7KB
|
236 lines
''Ini File string resources
GLOBAL INI$, INIPATH$
GLOBAL SECT$
GLOBAL VIEW$
GLOBAL EDIT$
GLOBAL NUTRIT$
GLOBAL SCHEDULE$
GLOBAL SHOPPING$
GLOBAL MENU$
GLOBAL CWEXE$
GLOBAL MCBEXE$
GLOBAL szPrjDir$
GLOBAL szSrcDir$
GLOBAL szIconLabel$
GLOBAL DTField%
GLOBAL EXEField%
GLOBAL INIPRESENT%
''Dialog ID's
CONST IDS_NOTEXTEDITOR = 1
CONST WELCOME = 100
CONST CB4_COPYINPROGRESS = 121
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST APPHELP = 900
CONST NOFREESPACE = 6300
CONST BADPATH = 6400
CONST TOOFEWCOLORS = 7100
CONST MCB_DETECTED = 108
CONST MCB_HELP = 109
CONST STANDBY = 110
CONST SW_SHOWMAXIMIZED = 3
CONST MCB_OVERWRITE = 124
CONST OLDMCB = 126
CONST NO_SYSTEMDAT = 128
''CONST NOFREEFORMCB = 129
CONST NOFREEFORUPDATE = 129
CONST NOFREEFORFULL = 134
CONST NOMCB = 130
CONST NEWMCBHELP = 131
CONST MCBPATH = 133
''Bitmap ID
CONST LOGO = 1
''Function constants
CONST CWSPACE = 6000000
CONST FULL = 8100000
CONST UPDATE = 4600000
GLOBAL MCBSPACE&
GLOBAL DEST$ ''Default destination directory.
GLOBAL OPTCUR$ ''Option selection from option dialog.
GLOBAL MCBDEST$ ''Destination path for Micro Cookbook files, if any.
GLOBAL VER_DATE$
GLOBAL MDLSSDLG$ ''Modeless dialog procedure name.
GLOBAL LHD$ ''Local Hard Disk Value list
GLOBAL SRCHDAT$
GLOBAL SRCHEXE$
GLOBAL VERFILE$
GLOBAL CUIDLL$
GLOBAL MCBPRESENT%
GLOBAL MCBINSTMODE$
DECLARE SUB Install(szIconLabel$)
DECLARE SUB SetIniToNewest (KEY$, INSTENTRY$)
DECLARE SUB InsertExeName (PlcHldr$, EntryStr$, ExeName$)
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION CheckForIni AS INTEGER
DECLARE FUNCTION CheckForMcb AS INTEGER
DECLARE FUNCTION MakeIni AS INTEGER
DECLARE FUNCTION CheckIni(ENTRY$) AS STRING
DECLARE FUNCTION McbInPath(szDir$) AS INTEGER
DECLARE FUNCTION SetIni(KEY$, VALUE$) AS INTEGER
DECLARE FUNCTION HashDate(DateStr$) AS LONG
FUNCTION CheckForIni STATIC AS INTEGER
IniSrch$ = FindFileInTree(INI$, GetWindowsDir)
IF IniSrch$ <> "" THEN
INIPATH$ = IniSrch$
CheckForIni% = True
ELSE
CheckForIni% = False
END IF
END FUNCTION
FUNCTION MakeIni STATIC AS INTEGER
IniSrch$ = FindFileInTree(INI$, GetWindowsDir)
IF IniSrch$="" THEN
InsertExeName "[CWEXE]", VIEW$, MakePath(DEST$, CWEXE$)
InsertExeName "[MCBEXE]", EDIT$, MakePath(MCBDEST$, MCBEXE$)
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Viewer",VIEW$, cmoVital
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Editor",EDIT$, cmoVital
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Nutrition",NUTRIT$, cmoVital
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Scheduler",SCHEDULE$, cmoVital
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Shopping",SHOPPING$, cmoVital
CreateSysIniKeyValue GetWindowsDir + INI$,SECT$,"Menu",MENU$, cmoVital
MakeIni% = True
ELSE
MakeIni% = False
END IF
END FUNCTION
FUNCTION CheckIni(KEY$) STATIC AS STRING
IF INIPRESENT% = False THEN
CheckIni$ = ""
EXIT FUNCTION
END IF
IF KEY$<>"ALL" THEN
sz$ = GetIniKeyString(INIPATH$, SECT$, KEY$)
CheckIni$ = sz$
ELSE
sz$ = GetIniKeyString(INIPATH$, SECT$, VIEW$)
sz$ = sz$ + ";" + GetIniKeyString(INIPATH$, SECT$, EDIT$)
sz$ = sz$ + ";" + GetIniKeyString(INIPATH$, SECT$, NUTRIT$)
sz$ = sz$ + ";" + GetIniKeyString(INIPATH$, SECT$, SCHEDULE$)
sz$ = sz$ + ";" + GetIniKeyString(INIPATH$, SECT$, SHOPPING$)
sz$ = sz$ + ";" + GetIniKeyString(INIPATH$, SECT$, MENU$)
CheckIni$ = sz$
END IF
END FUNCTION
FUNCTION SetIni(KEY$, VALUE$) STATIC AS INTEGER
IF INIPRESENT% = False THEN
SetIni% = False
EXIT FUNCTION
END IF
CreateSysIniKeyValue GetWindowsDir + INI$, SECT$, KEY$, VALUE$, cmoVital
SetIni% = True
END FUNCTION
SUB SetIniToNewest (KEY$, INSTENTRY$) STATIC
sz$ = CheckIni(KEY$)
IF sz$ <> "" THEN
ViewTemp$ = GetNthFieldFromIniString(sz$, DTField%)
ViewDate& = HashDate(ViewTemp$)
IniStr$ = KEY$ + "=" + INSTENTRY$
CwTemp$ = GetNthFieldFromIniString(IniStr$, DTField%)
CwDate& = HashDate(CwTemp$)
IF CwDate& > ViewDate& THEN
i% = SetIni(KEY$, INSTENTRY$)
END IF
END IF
END SUB
FUNCTION CheckForMcb STATIC AS INTEGER
'' Does a check for the Micro Cookbook, first by doing a presence detection for resource file (CB40.DAT), then by
'' extracting Date/Time info from the main executable (CB40.EXE) in the same directory. If present, a comparison is
'' made to the Editor being installed.
'' Return Value:
'' 0 = Micro Cookbook not present.
'' 1 = Micro Cookbook present is older than the Editor to be installed (query user to update?)
'' 2 = Micro Cookbook present is the same as the version to be installed (update/overwrite)
'' 3 = Micro Cookbook present is newer than the editor to be installed (update/overwrite/abort install)
sz$=UIStartDlg(CUIDLL$, STANDBY, MDLSSDLG$, 0, "")
i%=ShowWaitCursor()
SetSymbolValue "LocalHardDrives",""
GetLocalHardDrivesList "LocalHardDrives"
LHD$ = GetSymbolValue ("LocalHardDrives")
NumHDDS% = (Len(LHD$)-5)/4 + 1
FOR Y%=1 TO NumHDDS%
MCBDEST$=FindFileInTree(SRCHDAT$,MID$(LHD$, 4 * Y% - 1, 1)+":\")
IF MCBDEST$ <> "" THEN
MCBDEST$=FindFileInTree(SRCHEXE$,MID$(LHD$, 4 * Y% - 1, 1)+":\")
IF MCBDEST$<>"" THEN
MCBDSTR$ = GetDateOfFile(MCBDEST$)
MCBDATE& = HashDate(MCBDSTR$)
EDT$ = "Editor=" + EDIT$
EDTDATE$ = GetNthFieldFromIniString(EDT$, DTField%)
EDITRDATE& = HashDate(EDTDATE$)
MCBDEST$ = MID$(MCBDEST$, 1, LEN(MCBDEST$) - LEN(SRCHEXE$) - 1)
IF MCBDATE& < EDITRDATE& THEN
CheckForMcb% = 1
END IF
IF MCBDATE& = EDITRDATE& THEN
CheckForMcb% = 2
END IF
IF MCBDATE& > EDITRDATE& THEN
CheckForMcb% = 3
END IF
EXIT FOR
END IF
END IF
NEXT Y%
UIPop 1
RestoreCursor i%
IF MCBDEST$="" THEN
CheckForMcb% = 0
END IF
END FUNCTION
FUNCTION McbInPath(szDir$) STATIC AS INTEGER
IF FindFileInTree(SRCHDAT$, szDir$) <> "" THEN
McbInPath% = True
ELSE
McbInPath% = False
END IF
END FUNCTION
FUNCTION HashDate(DateStr$) STATIC AS LONG
Result& = GetYearFromDate(DateStr$)
Result& = Result& * 10000
Result& = Result& + (GetMonthFromDate(DateStr$) * 100)
Result& = Result& + GetDayFromDate(DateStr$)
HashDate& = Result&
END FUNCTION
SUB InsertExeName (PlcHldr$, EntryStr$, ExeName$) STATIC
i% = InStr(EntryStr$, PlcHldr$)
IF i% > 0 THEN
j% = i% + LEN(PlcHldr$)
First$ = MID$(EntryStr$, 1, i% - 1)
Sec$ = MID$(EntryStr$, j%, LEN(EntryStr$) - j%)
EntryStr$ = First$ + ExeName$ + Sec$
END IF
END SUB